from langdetect import detect

def get_language_code(text: str) -> str:
    """
    检测文本语言并返回简单的语言代码
    
    Args:
        text: 要检测的文本
        
    Returns:
        str: 语言代码 (zh/en/ja/ko等)
    """
    try:
        # 语言代码映射
        lang_map = {
            'zh-cn': 'zh',  # 中文
            'zh-tw': 'zh',  # 繁体中文
            'en': 'en',     # 英文
            'ja': 'ja',     # 日语
            'ko': 'ko',     # 韩语
            'fr': 'fr',     # 法语
            'de': 'de',     # 德语
            'es': 'es',     # 西班牙语
            'ru': 'ru',     # 俄语
            'ar': 'ar',     # 阿拉伯语
            'th': 'th',     # 泰语
            'vi': 'vi'      # 越南语
        }
        
        # 检测语言
        detected = detect(text)
        
        # 返回映射后的语言代码
        return lang_map.get(detected, detected)
        
    except Exception as e:
        print(f"语言检测失败: {str(e)}")
        return 'unknown'

# 使用示例
if __name__ == "__main__":
    texts = {
        "中文": "人民日报21",
        "English": "This is English text",
        "日本語": "これは日本語のテキストです",
        "한국어": "이것은 한국어 텍스트입니다",
        "Français": "C'est un texte en français",
        "Mixed": "这是 Mixed 混合 Text の 文本"
    }
    
    for name, text in texts.items():
        lang_code = get_language_code(text)
        print(f"{name}: {text} -> {lang_code}")